
#ifndef __WINDOWSNLMTOOL_PARAMS__
#define __WINDOWSNLMTOOL_PARAMS__


const DWORD NoConnectivity =
	NLM_CONNECTIVITY_DISCONNECTED;
const DWORD IPv4Connectivity =
	NLM_CONNECTIVITY_IPV4_NOTRAFFIC |
	NLM_CONNECTIVITY_IPV4_SUBNET |
	NLM_CONNECTIVITY_IPV4_LOCALNETWORK |
	NLM_CONNECTIVITY_IPV4_INTERNET;
const DWORD IPv6Connectivity =
	NLM_CONNECTIVITY_IPV6_NOTRAFFIC |
	NLM_CONNECTIVITY_IPV6_SUBNET |
	NLM_CONNECTIVITY_IPV6_LOCALNETWORK |
	NLM_CONNECTIVITY_IPV6_INTERNET;
const DWORD ConnectivityDisconnected = NLM_CONNECTIVITY_IPV6_INTERNET << 1;
const DWORD AnyConnectivity = IPv4Connectivity | IPv6Connectivity | ConnectivityDisconnected;


struct nlmtool_params_t
{
	bool init( int argc, wchar_t* argv[ ] );

	struct
	{
		int argc;
		wchar_t** argv;
	}
	cmd_line;

	bool help_requested;

	bool print_overall_connectivity;

	struct
	{
		bool first;
		long index;

		wchar_t* guid_arg;
		GUID guid;

		DWORD connectivity;
		bool connectivity_set;

		NLM_NETWORK_CATEGORY category;
		bool category_set;

		NLM_DOMAIN_TYPE domain_type;
		bool domain_type_set;

		wchar_t* name;
		wchar_t* description;

		SYSTEMTIME datetime_created;
		SYSTEMTIME datetime_connected;


		NLM_NETWORK_CATEGORY new_category;
		bool new_category_set;

		wchar_t* new_name;
		wchar_t* new_description;
	}
	network;
};


#endif // __WINDOWSNLMTOOL_PARAMS__
